use mimalloc::{print_free_list, ALLOCATOR};
fn main() {
    // 测试之前的空闲链表信息
    unsafe {
        print_free_list();
    }

    // 测试申请，最后释放，1000次
    for _ in 0..1000 {
        test();
    }
    // 显示最终的空闲链表信息, 和测试之前的容量一样，正确的释放了
    unsafe {
        print_free_list();
    }
}

fn test() {
    // 把上面的ALLOCATOR这个全局分配器引入，现在使用的就是我们定制的内存分配器
    let arr = vec![1, 2, 3];
    println!("{:?}", arr);
    unsafe {
        print_free_list(); // 打印可以分配的链表信息
    }

    let arr2 = String::from("世界你好");
    println!("{}", arr2);
    unsafe {
        print_free_list();
    }

    let arr3 = Box::new(100);
    println!("arr3: {}", arr3);
    unsafe {
        print_free_list();
    }
}
